1.1. 2.2 项目步骤

入门项目需掌握:调试工具,大框架(Module 和 Class)与小框架(元编程),数据查询语句

怎样让问题在一开始就暴露出来:

  • 第一步,建表包含主要字段,读 Api 存储主要数据
  • 第二步,针对主要字段,做 Seed 假数据,查询算法难写的直接给个值就好(只要能展示就行)
  • 第三步,用假数据展示

最耗时的事:

  • seed 假资料(参考天马项目总结)
  • 数据表命名、字段命名、添加标记类字段(参考云豹项目)
  • 数据库查询展示(参考天马项目)

1.1.1. 2.2.1 画出:建表思维导图

1.1.2. 2.2.2 写出:展示的页面和字段

1)del/remark/role, start_at/expired_at 2)boolean is_locked 锁的(用于事务) is_valid 有效的(用于有效期) is_active 激活的(用于邮件激活账户) is_able 能用的(用于尝试) is_public, is_hidden, is_private 是否显示

1.1.3. 2.2.3 建表并关联

1)rails new 2)def full_title 3)rails g model xx 4)rails g controller admin::xx 5) admin::view 6) rails g controller xx 7) view

1.1.4. 2.2.4 编写假数据seed、tasks

[1,2,3]shuffle[0..1] 随机选两个, rand(), [1,2,3].sample(2) 随机选两个

  • 存储多字段两种方法: 方法一:{"a":["b","c","d"]}.each{|key, value| Demo.find_or_create_by(a:key, b:value[0], c:value[1], d:value[2])} 方法二:["a","b","c"].product([1,2,3]){|ary| Demo.find_or_create_by(a:ary[0], b:ary[1])}
  • 常用 faker Faker::Name
    Faker::Markdown Faker::Lorem 段落 Faker::Avatar 头像 Faker::Internet 邮件密码ip Faker::Commerce 产品明细

  • task 模板:lib/tasks/faker.rake,通过执行 rails dev:all

    namespace :dev do
    # 跳过回调:<http://thelazylog.com/skip-activerecord-callbacks>
    task all: [
                :create_cust_accounts,
                :create_shops
              ]
    task create_cust_accounts: :environment do
      puts "Generate faker users."
      10.times do
        @batch = CustAccountBatch.create!(..)
        50.times do
          if @batch.valid?
            @batch.cust_accounts.create!(
              email: "#{Faker::Name.last_name.capitalize}_#{Faker::Name.first_name.capitalize}_#{rand(10000..99999)}#{["@aol.com", "@gmail.com", "@yahoo.com", "@outlook.com"].shuffle[0]}",
              passwd: "#{Faker::Name.last_name.capitalize}_#{Faker::Name.first_name.capitalize}_#{rand(10000..99999)}@#")
          end
        end
      end
    end
    task create_courses: :environment do
      puts "Generate faker courses."
      Camp.all.each do |camp|
        rand(30..40).times do
          camp.courses.create!(name:        Faker::Movie.quote,
                               description: Faker::Lorem.paragraph,
                               image:       "center#{rand(1..24)}.jpg",
                               is_locked:   false)
        end
      end
    end
    end
    

    1.1.5. 2.2.5 用假数据展示页面

    1.1.6. 2.2.6 改用真数据:数据库查询

    1)常用语法

    1.1.7. 2.2.7 扩展数据库字段

    1.1.8. 2.2.8 测试与重构

1.1.9. demo:天马项目流程

1)rails new
2)gem redis,bcrypt,kaminari,jwt,sidekiq,sidetiq,sinatra,faker,pry-rails
bootstrap 模板
title
controller:admin/account_activations,password_resets,sessions,static_pages,users
mailers:user_mailer
model:company,department,region,signin_log,user
seed
3)gem figaro,letter_avatar
controller:admin/account_activations,password_resets,sessions,static_pages,users
mailers
layout:sidebar

results matching ""

    No results matching ""